#include <stdio.h>
#include <sqlite3.h>
#include <time.h>
#include <string.h>
char time0[100][100];
char path[100][100];
int j=0; 
int select_callback(void * data, int col_count, char ** col_values, char ** col_Name)// 每条记录回调一次该函数,有多少条就回调多少次
{
	int i;
	for( i=0; i < col_count; i++){
    		//printf( "%s = %s  \n", col_Name[i], col_values[i] == 0 ? "NULL" : col_values[i] );
    		if(i==0)sprintf(path[j],"%s", col_values[i] ); /*存储删除文件的命令*/
    		else sprintf(time0[j],"%s", col_values[i] ); /*存储删除文件的命令*/
	}
	if(col_count!=0)j++;
	return 0;
}
int main()
{
	int n;//用于对比时间 
	int k;
	char rmcmdtmp[300];//存储删除文件命令 
	char sql[300];
	
	// 连接数据库
	sqlite3 * db = 0;//数据库定义 
	char * pErrMsg = 0;// 数据库错误信息 
	int result = 0;
	int ret = sqlite3_open("./leeg.db", &db);
	if( ret != SQLITE_OK ) {
    	fprintf(stderr, "无法打开数据库: %s", sqlite3_errmsg(db));
    	return(1);
	}
	else printf("数据库连接成功!\n");

	//查询数据库，对比时间进行删除 
	while(1){
		sleep(1);
		j=0;
		//获取当前时间 
		time_t t;
		time(&t);
		char tmpBuf[255];
		strftime(tmpBuf, 255, "%Y-%m-%d %H:%M:%S", localtime(&t)); //format date and time. 
		printf("%s \n",tmpBuf);
		//查询时间 
		sqlite3_exec( db, "select path,deletetime from montiorfile;", select_callback, 0, &pErrMsg);
		for(k=0;k<j;k++){
			//时间的对比，以及文件是否删除 
			n=strcmp(tmpBuf,time0[k]);//再根据n进行判断,时间的对比
			if(n>=0){
				printf("%s\n",path[k]);
				sprintf(rmcmdtmp,"rm -rf %s",path[k]); /*存储删除文件的命令*/
				char *rmcmd=rmcmdtmp;
				system(rmcmd);
				sprintf(sql,"delete from montiorfile where path=\"%s\"",path[k]);
				sqlite3_exec( db, sql, 0, 0, &pErrMsg);
			}
		}
	} 
	return 0;
}
